﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using jQueryAir.Utils;

namespace jQueryAir.DataAccess
{
    using System.Data;

    using Microsoft.Practices.EnterpriseLibrary.Data;

    using jQueryAir.BusinessEntity;

    public class EtapaDAL : Singleton<EtapaDAL>
    {
        static DatabaseProviderFactory factory = new DatabaseProviderFactory();
        static Database BaseDatos = factory.Create("ConnectionString");

        public IList<Etapa> consultarEtapas(Etapa etapa)
        {
            var etapas = new List<Etapa>();
            var comando = BaseDatos.GetStoredProcCommand("InmListarEtapas");
            BaseDatos.AddInParameter(comando, "IdProyecto", DbType.Int32, etapa.IdProyecto);

            using (var lector = BaseDatos.ExecuteReader(comando))
            {
                while (lector.Read())
                {
                    etapas.Add(new Etapa
                    {
                        IdEtapa = lector.GetInt32(lector.GetOrdinal("IdEtapa")),
                        NombreEtapa = lector.GetString(lector.GetOrdinal("Etapa")),
                        Area = lector.GetDecimal(lector.GetOrdinal("Area")),
                        FechaEntrega = lector.GetDateTime(lector.GetOrdinal("FechaEntrega")),
                        NumeroEdificios = lector.GetInt32(lector.GetOrdinal("NumeroEdificios")),
                        NumeroInmuebles = lector.GetInt32(lector.GetOrdinal("NumeroInmuebles"))
                    });
                }
            }
            comando.Dispose();
            return etapas;
        }  
    }
}
